<?php

/**
 * This is the model class for table "{{contact}}".
 *
 * The followings are the available columns in table '{{contact}}':
 * @property integer $id
 * @property string $name
 * @property string $address
 * @property string $email
 * @property string $website
 * @property string $phone
 * @property string $fax
 * @property integer $sort
 * @property integer $enabled
 * @property integer $createddate
 * @property integer $modifieddate
 */
class Contact extends CActiveRecord
{
  /**
   * Returns the static model of the specified AR class.
   * @param string $className active record class name.
   * @return Contact the static model class
   */
  public static function model($className=__CLASS__)
  {
    return parent::model($className);
  }

  /**
   * @return string the associated database table name
   */
  public function tableName()
  {
    return '{{contact}}';
  }

  /**
   * @return array validation rules for model attributes.
   */
  public function rules()
  {
    // NOTE: you should only define rules for those attributes that
    // will receive user inputs.
    return array(
    array('name, address, email, website, phone, fax, sort', 'required'),
    array('sort, enabled, createddate, modifieddate', 'numerical', 'integerOnly'=>true),
    array('name, address', 'length', 'max'=>500),
    array('email, website', 'length', 'max'=>255),
    array('phone, fax', 'length', 'max'=>20),
    // The following rule is used by search().
    // Please remove those attributes that should not be searched.
    array('id, name, address, email, website, phone, fax, sort, enabled, createddate, modifieddate', 'safe', 'on'=>'search'),
    );
  }

  /**
   * @return array relational rules.
   */
  public function relations()
  {
    // NOTE: you may need to adjust the relation name and the related
    // class name for the relations automatically generated below.
    return array(
    );
  }

  /**
   * @return array customized attribute labels (name=>label)
   */
  public function attributeLabels()
  {
    return array(
			'id' => 'ID',
			'name' => 'Tên',
			'address' => 'Địa chỉ',
			'email' => 'Email',
			'website' => 'Website',
			'phone' => 'Phone',
			'fax' => 'Fax',
			'sort' => 'Thứ tự',
			'enabled' => 'Hiển thị',
			'createddate' => 'Ngày tạo',
			'modifieddate' => 'Ngày cập nhật',
    );
  }

  protected function beforeSave() {
    if($this->isNewRecord) {
      $this->createddate = time();
    }
    $this->modifieddate = time();
    return parent::beforeSave();
  }


  public function getContacts($top = '')
 	{
 	  if ($top=='')
 	  {
 	    $contacts = Yii::app()->db->createCommand()
 	    ->select('t.id, t.name name, t.address, t.email, t.phone, t.fax, t.website')
 	    ->from('tbl_contact as t')
 	    ->where('t.enabled = 1')
 	    ->order('t.sort')
 	    ->queryAll();
 	  }
 	  else {
 	    $contacts = Yii::app()->db->createCommand()
 	    ->select('t.id, t.name name, t.address, t.email, t.phone, t.fax, t.website')
 	    ->from('tbl_contact as t')
 	    ->where('t.enabled = 1')
 	    ->order('t.sort')
 	    ->limit($top)
 	    ->queryAll();
 	  }
 	  return $contacts;
 	}

 	/**
 	 * Retrieves a list of models based on the current search/filter conditions.
 	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
 	 */
 	public function search()
 	{
 	  // Warning: Please modify the following code to remove attributes that
 	  // should not be searched.

 	  $criteria=new CDbCriteria;

 	  $criteria->compare('id',$this->id);
 	  $criteria->compare('name',$this->name,true);
 	  $criteria->compare('address',$this->address,true);
 	  $criteria->compare('email',$this->email,true);
 	  $criteria->compare('website',$this->website,true);
 	  $criteria->compare('phone',$this->phone,true);
 	  $criteria->compare('fax',$this->fax,true);
 	  $criteria->compare('sort',$this->sort);
 	  $criteria->compare('enabled',$this->enabled);
 	  $criteria->compare('createddate',$this->createddate);
 	  $criteria->compare('modifieddate',$this->modifieddate);

 	  return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
 	  ));
 	}
}